package com.zhuangjie.mvc.validator.handler;


import com.zhuangjie.mvc.validator.annotate.ValidInteger;

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class ValidIntegerConstraintValidator  implements ConstraintValidator<ValidInteger,Integer> {
    private int[] values;
    public void initialize(ValidInteger constraintAnnotation) {
        // 【1】将允许的值放在成员中，好让isValid获取允许的值与传入的真实值进行判断
        this.values = constraintAnnotation.value();
    }

    @Override
    public boolean isValid(Integer inputValue, ConstraintValidatorContext constraintValidatorContext) {
        // 【2】使用允许的值（数组）与输入的值inputValue来看inputValue是否在values中，如果在返回true，表示检验通过。
        if (values == null || values.length == 0 ) {
            return true;
        }
        for (int value : values) {
            if (value == inputValue.intValue()) {
                return true;
            }
        }
        return false;
    }
}
